//
//  UIAlertController+Category.h
//  VICategory
//
//  Created by lan's Mac on 2022/7/4.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

typedef void(^AlertControllerBlock)(id _Nullable obj);

@interface UIAlertController (Category)

/// 系统自带弹出框 - 单个按钮只有标题
/// @param viewController 控制器
/// @param titleStr 标题
/// @param btnTitle 按钮名称
/// @param btnAction 按钮回调
+ (void)showWithViewController:(UIViewController *)viewController
                        title:(NSString *)titleStr
                     btnTitle:(NSString *)btnTitle
                     clickBtn:(nullable AlertControllerBlock)btnAction;

/// 系统自带弹出框 - 单个按钮只有内容
/// @param viewController 控制器
/// @param message 标题
/// @param btnTitle 按钮名称
/// @param btnAction 按钮回调
+ (void)showWithViewController:(UIViewController *)viewController
                       message:(NSString *)message
                     btnTitle:(NSString *)btnTitle
                     clickBtn:(nullable AlertControllerBlock)btnAction;

/// 系统自带弹出框 - 单个按钮标题+内容
/// @param viewController 控制器
/// @param titleStr 标题
/// @param message 内容
/// @param btnTitle 按钮名称
/// @param btnAction 按钮回调
+ (void)showWithViewController:(UIViewController *)viewController
                        title:(NSString *)titleStr
                      message:(NSString *)message
                     btnTitle:(NSString *)btnTitle
                     clickBtn:(nullable AlertControllerBlock)btnAction;

/// 系统自带弹出框 - 两个按钮只有标题
/// @param viewController 控制器
/// @param titleStr 标题
/// @param leftTitle 左边按钮名称
/// @param rightTitle 右边按钮名称
/// @param leftAction 左边按钮回调
/// @param rightAction 右边按钮回调
+ (void)showWithViewController:(UIViewController *)viewController
                        title:(NSString *)titleStr
                 leftBtnTitle:(NSString *)leftTitle
                rightBtnTitle:(NSString *)rightTitle
                 clickLeftBtn:(nullable AlertControllerBlock)leftAction
                clickRightBtn:(nullable AlertControllerBlock)rightAction;

/// 系统自带弹出框 - 两个按钮只有内容
/// @param viewController 控制器
/// @param message 内容
/// @param leftTitle 左边按钮名称
/// @param rightTitle 右边按钮名称
/// @param leftAction 左边按钮回调
/// @param rightAction 右边按钮回调
+ (void)showWithViewController:(UIViewController *)viewController
                      message:(NSString *)message
                 leftBtnTitle:(NSString *)leftTitle
                rightBtnTitle:(NSString *)rightTitle
                 clickLeftBtn:(nullable AlertControllerBlock)leftAction
                clickRightBtn:(nullable AlertControllerBlock)rightAction;

/// 系统自带弹出框 - 两个按钮标题+内容
/// @param viewController 控制器
/// @param titleStr 标题
/// @param message 内容
/// @param leftTitle 左边按钮名称
/// @param rightTitle 右边按钮名称
/// @param leftAction 左边按钮回调
/// @param rightAction 右边按钮回调
+ (void)showWithViewController:(UIViewController *)viewController
                        title:(NSString *)titleStr
                      message:(NSString *)message
                 leftBtnTitle:(NSString *)leftTitle
                rightBtnTitle:(NSString *)rightTitle
                 clickLeftBtn:(nullable AlertControllerBlock)leftAction
                clickRightBtn:(nullable AlertControllerBlock)rightAction;


/// 系统自带弹出框 - 两个按钮标题+内容
/// @param viewController 控制器
/// @param titleStr 标题
/// @param message 内容
/// @param leftTitle 左边按钮名称
/// @param rightTitle 右边按钮名称
/// @param leftColor 右边按钮颜色
/// @param rightColor 右边按钮颜色
/// @param leftAction 左边按钮回调
/// @param rightAction 右边按钮回调
+ (void)showWithViewController:(UIViewController *)viewController
                         title:(NSString *)titleStr
                       message:(NSString *)message
                  leftBtnTitle:(NSString *)leftTitle
                 rightBtnTitle:(NSString *)rightTitle
                     leftColor:(nullable UIColor *)leftColor
                    rightColor:(nullable UIColor *)rightColor
                  clickLeftBtn:(nullable AlertControllerBlock)leftAction
                 clickRightBtn:(nullable AlertControllerBlock)rightAction;

@end

NS_ASSUME_NONNULL_END
